package pe.intix.drawback.model;

import groovy.transform.*;

import javax.persistence.*;

import org.openxava.annotations.*;

/**
 * @author Jeromy Altuna
 * @author Renato
 */
@Entity
@Views([
	@View(name = "MuySimple", members = "descripcion"),
	@View(name = "Simple", members = "idProducto, descripcion, unidadMedida")
])
@Table(name = "producto")
@EqualsAndHashCode
class Producto {

	@Id
	@Column(name = "id_producto", length = 20)
	String idProducto

	@Required
	@DisplaySize(forViews="Simple", value=50)
	@Column(name = "descripcion", length = 200)
	String descripcion


	@Required @NoCreate @NoModify
	@ReferenceView(forViews="Simple", value="MuySimple")
	@DescriptionsList(descriptionProperties = "descTablaTipo", 
					  condition = "tablaTipo = 'tipo_unid_medida'")
	@JoinColumn(name = "id_tipo_medida", referencedColumnName = "id_tipo")
	@ManyToOne(fetch = FetchType.LAZY)
	Tipo unidadMedida		
}
